1. Field of the Invention
The present invention relates to apparatus and method for encoding and decoding pseudo product code, suitable for use in digital devices which use pseudo product codes, such as a digital video tape recorder, digital audio recorder, digital communication device, or the like. More particularly, the present invention is concerned with a pseudo-product code encoding and decoding apparatus and method in which decoding processing is performed after a conversion of a pseudo-product code into a product code, so as to improve error correction capability.
2. Description of the Related Art
Recording/playback apparatuses such as digital video tape recorders and digital audio recorders, which digitize input video signals and audio signals and record the resultant digital signals, are put into use in recent years.
Referring to FIG. 15, a typical known recording/playback apparatus of the kind mentioned above, denoted by 200, has a video signal code encoding unit 201 which, upon receipt of a video signal, encodes the video signal to form video data. The video data is delivered to an error correction code encoding unit 202 which performs an error-correction encoding on the video data. The video data output from the error correction code encoding unit 202 is supplied to a recording/playback unit 203 in which the video data is recorded in a magnetic tape 206 by means of a rotary head 207.
In playback mode of operation of the recording/playback apparatus 200, video data recorded in the magnetic tape 206 is reproduced by a rotary head 207. The video data thus reproduced in the recording/playback unit 203 is subjected to an error-correction processing performed by an error correction code decoding unit 204. The video data after the error correction is then output as video signals through a video signal decoding unit 205.
Various types of codes are usable as the error correction code to be processed in the error correction code encoding unit 202 and the error correction code decoding unit 204. One example of such error-correction codes is a product code which has linear-structure error-correction codes arranged both in column and line directions of a rectangular matrix of information symbols. For instance, a product code codeword as shown in FIG. 16 is known. The product code codeword shown in FIG. 16 has a C1 codes (referred to also as xe2x80x9cinternal codexe2x80x9d) which are consecutive in the direction of the magnetic tape 206, and C2 codes (referred to also as xe2x80x9cexternal codexe2x80x9d) which are arranged in a direction perpendicular to the direction of arrangement of the C1 codes.
In the example of the product code codeword shown in FIG. 16, the C1 code is a linear-structure error correction code which has a code length of 10 symbols and a parity number of 4 symbols and which is capable of effecting correction of up to 2 symbols at the maximum. Likewise, each C2 code is a linear-structure error correction code which has a code length of 14 symbols and a parity number of 14 symbols and which is capable of effecting correction of up to 2 symbols at the maximum. Thus, the product code codeword is composed of elementary linear-structure error-correction codes. The sequence of encoding may be such that C1 codes are encoded first followed by encoding of the C2 codes or vice versa. It is known that the same encoding result is obtained regardless of the sequence of encoding.
It is assumed here that the C2 codes are encoded first, and then the encoding of the C1 codes is performed. In such a case, based on the definition, a symbol group 212 is a group of parity symbols of the C1 codes. Obviously, a symbol group 213 shown in FIG. 16 is a group of parity symbols of the C1 codes, added to the parity symbols of the C2 codes. Since identical encoding results are obtained regardless of the sequence of encoding as stated before, the symbol group 213 shown in FIG. 16 also is a group of parity symbols of the C2 codes added to the parity symbols of the C1 codes. Thus, even when the encoding sequence is such that the encoding of the C1 codes is performed subsequent to the encoding of the C2 codes, not only the symbol group 211 but also the symbol group 212 are regarded as being C2 codes, when the matrix of the symbols is viewed in the columnar direction.
It has been known that error correction ability for correcting error of a product code can be enhanced by repeating decoding a plurality of times, by making use of the above-described characteristic of parity symbols of the product code. For instance, when decoding processing is repeated such that a decoding processing of the C1 codes in the line direction is effected first and then a decoding processing of the C2 codes is performed in the columnar direction, errors that remain not corrected through the decoding of the C1 codes may be corrected in the course of the decoding processing of the C2 codes. Further repetition of the decoding processings such as decoding processing of C1 code, decoding processing of C2 code, and so on, serves to enhance the error correction ability without fail.
Pseudo product code, which can store two series of information symbols, is also known, as being usable as an error correction code in the error correction code encoding unit 202 an the error correction code decoding unit 204 of the circuit shown in FIG. 15.
A pseudo product code is formed as follows. Information symbols of a first series are arranged in a rectangular matrix form, and columnar linear-structure error correction codes are formed, followed by addition of information symbols of a second series. Then, linear-structure error correction codes are formed in the line direction, on the entity composed of columnar-direction-encoded first series information code and the second series information symbols.
FIG. 17 shows an example of the pseudo product code codeword. As in the case of the product code described above, codes of the direction consecutive on a magnetic tape 207 are referred to as C1 codes (internal codes), while the codes in the other direction are referred to as C2 codes (external codes).
In the pseudo product code codeword shown in FIG. 17, a C1 code is a linear error correction code having a code length of 12 symbols and a parity number of 4 symbols and capable of correcting up to 2 symbols at the maximum, while a C2 code is a linear error correction code having a code length of 14 symbols, parity number of 4 symbols and capable of correcting up to 2 symbols at the maximum. Information symbols of the first series are stored in a rectangle composed of 6 symbols in the C1 code direction and 10 symbols in the C2 code direction. Information symbols of the second series are stored in the starting two symbols of the C1 code information symbols. This pseudo product code is a modification of the above-described product code and, hence, is not a perfect product code.
The symbol group 222 shown in FIG. 17 constitutes C2 codes, but the symbol group 223 does not form C2 codes. This is because, while the information symbols of the first series constitute both the C2 and C1 codes, the information symbol of the second series constitute only the C1 codes.
In most cases, the information symbols of the second series carry information of the type which is needed prior to decoding of the C2 code. For instance, information symbols of the second series carry position information which are necessary for arraying discontinuously-appearing C1 codes into the form of the pseudo-product code.
The pseudo product code encoding unit, which corresponds to the error correction code encoding unit 202 of FIG. 15, operates to rearrange the first-series information symbols that are inputted in accordance with the direction of arrangement of the C1 codes into the direction of arrangement of the C2 codes, thereby encoding these information symbols into the C2 codes, and also to add the parity symbols of the C2 codes. Further, the pseudo product code encoding unit is operative to adequately select the information symbols of the second series and the C2-encoded results rearranged into the C1 code direction, and to encode the selected symbols and the rearranged encoded results into C1 codes and, further, to add parity symbols for the C1 codes, thus outputting the pseudo product code.
FIG. 18 shows an example of conventional pseudo product code decoding unit 240 which corresponds to the error correction code decoding unit 204 shown in FIG. 15. The pseudo product code decoding unit 240 has an input terminal 241, a C1 code decoding unit 242, a second-series information extracting unit 243, a first interleave unit 244, a C2 code decoding unit 245, a second interleave unit 246, a repetitive decoding unit 247, a first-series information symbol extracting unit 248, an output terminal 249, and another output terminal 250.
The C1 code decoding unit 242 decodes pseudo product codes supplied through the input terminal 241 in the sequence of the C1-code direction into predetermined C1 codes, and performs error correction within a error-correctable range that is determined by the codes. The C1 code decoding unit 242 then delivers the error-corrected decoded result to the second-series information symbol extracting unit 243 and also to the first interleave unit 244.
The second-series information symbol extracting unit 243 extracts second-series information symbols contained in the result of decoding of the pseudo product code in terms of the C1 codes received from the C1 code decoding unit 242, and delivers the extracted second-series information symbols to the output terminal 250.
The first interleave unit 244 receives pseudo product code in terms of the C1 codes from the C1 code decoding unit 242, and supplies pseudo product code in terms of the C2 code to the C2 code decoding unit 245.
The C2 code decoding unit 245 decodes pseudo product codes supplied from the first interleave unit 244 in the sequence of the C2-code direction into predetermined C2 codes, and performs error correction within an error-correctable range that is determined by the codes. The C2 code decoding unit 245 then delivers the error-corrected decoded result to the second interleave unit 246. Since only part of the pseudo product codes supplied from the first interleave unit 244 constitutes the C2 codes, the C2 code decoding unit 245 performs decoding only on the part of the pseudo product codes that provides C2 codes. Thus, the remainder part of the pseudo product code is delivered to the second interleave unit 246 without being decoded.
For instance, when a pseudo product code codeword as shown in FIG. 17 has been input, the C2 code decoding unit performs the error correction by treating the pseudo product code as being C2 codes and delivers the error-correction result to the second interleave unit 246, while the symbols of the symbol group 222 are being received from the first interleave unit 244.
In contrast, while symbols of the symbol group 221 or the symbol group 223 are being received from the first interleave unit 244, the C2 code decoding unit 245 delivers the pseudo product codes to the second interleave unit 246 as they are, i.e., without effecting any error correction.
The second interleave unit 246 delivers to the repetitive decoding unit 247 the pseudo product codes received from the C2 code decoding unit 245, as the C1 codes.
The repetitive decoding unit 247 repeats the decoding processing for decoding the pseudo product codes that are supplied from the second interleave unit 246 in the sequence of the C1 code direction. More specifically, the repetitive dividing unit 247 performs decoding processings in a sequence such as C1 code decoding, C2 code decoding, . . . , C1 code decoding and C2 code decoding, and delivers the results to the first-series information symbol extracting unit 248.
The first-series information extracting unit 248 extracts, from among the pseudo product codes supplied from the repetitive decoding unit 247 in the sequence of the C1 code direction, only the information symbols of the first series and delivers the thus-extracted symbols to the output terminal 249.
As a result of the described operation of the pseudo product code unit 240, the pseudo product code codewords received through the input terminal 241 in the sequence of the C1 code direction are decoded and error-corrected, so that the information symbols of the first series are obtained at the output terminal 249, while the information symbols of the second series are obtained at the output terminal 250.
The repetitive decoding unit 247 performs, on the pseudo product code codewords that are input in the sequence of the C1 code direction, decoding processing one time by treating the codewords as the C1 codes and one time as the C2 codes, thus achieving further correction of errors, and delivers the C2 codes in the sequence of the C1 code direction.
The conventional pseudo product code decoding unit 240 of the type shown in FIG. 18 performs the decoding processing four times in total: namely, decoding of C1 codes by the C1 code decoding unit 242, decoding of C2 codes by the C2 code decoding unit 245, decoding of the C1 codes by the C1 code decoding unit 262, and the decoding of the C2 codes by the C2 decoding unit 264.
In the pseudo product code codeword shown in FIG. 16, the symbols in the symbol group 222 constitutes the C2 codeword, but the symbols of the symbol group 223 does not constitute any C2 codeword. Therefore, the C2 code decoding performed by the C2 code decoding unit 245 of the pseudo product code decoding unit 240 shown in FIG. 18 can only effect correction of errors contained in the symbol group 222, and can never correct errors existing in the symbol groups 221 and 223.
Thus, the pseudo product code decoding unit 240 cannot correct errors contained in the symbol groups 221 and 223 of the pseudo product code codeword of FIG. 17, despite the execution of decoding of the C2 codes. As a consequence, the capability of correcting error in the product code obtained through the repetitive decoding is impaired.
A description will be now given with reference to FIG. 19 showing the result of decoding effected on the product code codeword of FIG. 16, as obtained when errors are contained in this product code codeword. Referring to FIG. 19, three error symbols exist in the horizontal direction, so that error correction cannot be effected at all in the first C1 code decoding processing. In the subsequent C2 code decoding processing, however, error that has existed in the parity symbol of the C1 code can be corrected. All the errors are corrected by a second C1 code decoding processing.
FIG. 20 shows the results of decoding of the pseudo product code codeword of FIG. 17, as obtained when the same errors as those explained with reference to FIG. 19 exist in the pseudo product code codeword. Referring to FIG. 19, the error in the parity symbols of the C1 code in the symbol group 223 of FIG. 17 is not corrected despite the decoding of the C2 codes, so that the error correction cannot be achieved at all, unlike the case of FIG. 19. Thus, the decoding of pseudo product code by the conventional pseudo product code decoding unit 240 undesirably provides inferior error correcting ability, as compared with the case of a perfect product code that has almost the same parameters as the pseudo product code.
Accordingly, an object of the present invention is to provide a pseudo product coding/decoding apparatus and method that offer improved ability for error correction on pseudo product codes, thereby obviating the above-described shortcoming of the known arts.
To this end, the pseudo product code decoding apparatus and method of the present invention perform the following processings: a first error correction code decoding processing for effecting error correction by using parity symbols of a first linear-structure error correction code contained in a symbol train that constitutes a pseudo product code codeword, the pseudo product code codeword being formed by adding, to an array of first-series information symbols, a second linear-structure error correction code regarding external code, adding thereto second-series information symbols, and adding, to the first-series information symbols with the second linear-structure error correction code and the second-series information symbols added thereto, the first linear-structure error correction code regarding internal code; a second error correction code decoding process for effecting error correction by using parity symbols of the second linear-structure error correction code; a second-series information symbol extracting processing for extracting the second-series information symbols from the symbol train constituting the pseudo product code; a subtraction code generating processing for generating a subtraction code of a pseudo product code codeword formed of the second-series information symbols extracted by the second-series information symbol extracting process, with the first-series information symbol portion and the second linear-structure error correction code portion being changed to zero codes; a transforming processing for subtracting, from the symbol train of the pseudo product code codeword, the subtraction code generated by the subtraction code generating process, thereby transforming the pseudo product code codeword into a product code codeword; an error correction code repetitive decoding processing for effecting decoding processings a plurality of times on the symbol train of the product code codeword formed by the transforming process, thereby effecting error correction; and a first-series information symbol extracting processing for extracting the first-series information symbols from the symbol train constituting the product code codeword obtained by the error correction code repetitive decoding process.
With the pseudo product code decoding apparatus and method of the invention having features set forth above, it is possible to correct any error existing in the first-series information symbols, even when second-series information symbols have been added to the symbol train to form a pseudo product code codeword, by virtue of the transformation of the pseudo product code codeword into a product code codeword and subsequent repetitive encoding processings.
These and other objects, features and advantages of the present invention will become clear from the following description of the preferred embodiment when the same is read in conjunction with the accompanying drawings.